/*
 * OptimalAlgo.h
 *
 *  Created on: Jan 7, 2012
 *      Author: Shimi
 */
#pragma once

#include "Algorithm.h"
#include "SystemView.h"
#include "GradientDescent.h"
#include <list>
#include <map>
#include <string>

using namespace std;

class OptimalAlgo : public Algorithm
{
private:

	void createSortedExtents(vector<ExtentEntry*>* extents);
	double divisionOfPriorityGroup(vector<ExtentStatsAlgo*>* l, int groupNo, int time);

public:
	
	vector<ExtentStatsAlgo*>* sortedExtents;
	OptimalAlgo(SystemView* sys, int sortType, Writer* w, Parser* prs);
	virtual ~OptimalAlgo(void);
	void runAlgo(int iteration);
	
};
